home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 July: Mac OS SDK / Dev.CD Jul 00 SDK2.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / RIncludes / ControlDefinitions.r < prev    next >
Encoding:
Text File  |  2000-04-12  |  17.1 KB  |  391 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        ControlDefinitions.r
  3.  
  4.      Contains:    Definitions of controls used by Control Mgr
  5.  
  6.      Version:    Technology:    Mac OS 9
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    © 1999 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17.  
  18. #ifndef __CONTROLDEFINITIONS_R__
  19. #define __CONTROLDEFINITIONS_R__
  20.  
  21. #ifndef __CONDITIONALMACROS_R__
  22. #include "ConditionalMacros.r"
  23. #endif
  24.  
  25. #ifndef __CONTROLS_R__
  26. #include "Controls.r"
  27. #endif
  28.  
  29. #define kControlTabListResType             'tab#'                /*  used for tab control (Appearance 1.0 and later) */
  30. #define kControlListDescResType         'ldes'                /*  used for list box control (Appearance 1.0 and later) */
  31.  
  32. #define kControlCheckBoxUncheckedValue     0
  33. #define kControlCheckBoxCheckedValue     1
  34. #define kControlCheckBoxMixedValue         2
  35.  
  36. #define kControlRadioButtonUncheckedValue  0
  37. #define kControlRadioButtonCheckedValue  1
  38. #define kControlRadioButtonMixedValue     2
  39.  
  40. #define popupFixedWidth                 0x01
  41. #define popupVariableWidth                 0x02
  42. #define popupUseAddResMenu                 0x04
  43. #define popupUseWFont                     0x08
  44.  
  45. #define popupTitleBold                     0x0100
  46. #define popupTitleItalic                 0x0200
  47. #define popupTitleUnderline             0x0400
  48. #define popupTitleOutline                 0x0800
  49. #define popupTitleShadow                 0x1000
  50. #define popupTitleCondense                 0x2000
  51. #define popupTitleExtend                 0x4000
  52. #define popupTitleNoStyle                 0x8000
  53.  
  54. #define popupTitleLeftJust                 0x00000000
  55. #define popupTitleCenterJust             0x00000001
  56. #define popupTitleRightJust             0x000000FF
  57.  
  58. #define pushButProc                     0
  59. #define checkBoxProc                     1
  60. #define radioButProc                     2
  61. #define scrollBarProc                     16
  62. #define popupMenuProc                     1008
  63.  
  64. #define kControlLabelPart                 1
  65. #define kControlMenuPart                 2
  66. #define kControlTrianglePart             4
  67. #define kControlEditTextPart             5                    /*  Appearance 1.0 and later */
  68. #define kControlPicturePart             6                    /*  Appearance 1.0 and later */
  69. #define kControlIconPart                 7                    /*  Appearance 1.0 and later */
  70. #define kControlClockPart                 8                    /*  Appearance 1.0 and later */
  71. #define kControlListBoxPart             24                    /*  Appearance 1.0 and later */
  72. #define kControlListBoxDoubleClickPart     25                    /*  Appearance 1.0 and later */
  73. #define kControlImageWellPart             26                    /*  Appearance 1.0 and later */
  74. #define kControlRadioGroupPart             27                    /*  Appearance 1.0.2 and later */
  75. #define kControlButtonPart                 10
  76. #define kControlCheckBoxPart             11
  77. #define kControlRadioButtonPart         11
  78. #define kControlUpButtonPart             20
  79. #define kControlDownButtonPart             21
  80. #define kControlPageUpPart                 22
  81. #define kControlPageDownPart             23
  82. #define kControlClockHourDayPart         9                    /*  Appearance 1.1 and later */
  83. #define kControlClockMinuteMonthPart     10                    /*  Appearance 1.1 and later */
  84. #define kControlClockSecondYearPart     11                    /*  Appearance 1.1 and later */
  85. #define kControlClockAMPMPart             12                    /*  Appearance 1.1 and later */
  86. #define kControlDataBrowserPart         24                    /*  CarbonLib 1.0 and later */
  87. #define kControlDataBrowserDraggedPart     25                    /*  CarbonLib 1.0 and later */
  88.  
  89. #define kControlBevelButtonSmallBevelProc  32
  90. #define kControlBevelButtonNormalBevelProc  33
  91. #define kControlBevelButtonLargeBevelProc  34
  92.  
  93. #define kControlBevelButtonSmallBevelVariant  0
  94. #define kControlBevelButtonNormalBevelVariant  0x01
  95. #define kControlBevelButtonLargeBevelVariant  0x02
  96. #define kControlBevelButtonMenuOnRightVariant  0x04
  97.  
  98. #define kControlBevelButtonSmallBevel     0
  99. #define kControlBevelButtonNormalBevel     1
  100. #define kControlBevelButtonLargeBevel     2
  101.  
  102. #define kControlBehaviorPushbutton         0
  103. #define kControlBehaviorToggles         0x0100
  104. #define kControlBehaviorSticky             0x0200
  105. #define kControlBehaviorSingleValueMenu  0
  106. #define kControlBehaviorMultiValueMenu     0x4000                /*  only makes sense when a menu is attached. */
  107. #define kControlBehaviorOffsetContents     0x8000
  108.  
  109. #define kControlBehaviorCommandMenu     0x2000                /*  menu holds commands, not choices. Overrides multi-value bit. */
  110. #define kControlBevelButtonMenuOnBottom  0
  111. #define kControlBevelButtonMenuOnRight     0x04
  112.  
  113. #define kControlBevelButtonAlignSysDirection  (-1)            /*  only left or right */
  114. #define kControlBevelButtonAlignCenter     0
  115. #define kControlBevelButtonAlignLeft     1
  116. #define kControlBevelButtonAlignRight     2
  117. #define kControlBevelButtonAlignTop     3
  118. #define kControlBevelButtonAlignBottom     4
  119. #define kControlBevelButtonAlignTopLeft  5
  120. #define kControlBevelButtonAlignBottomLeft  6
  121. #define kControlBevelButtonAlignTopRight  7
  122. #define kControlBevelButtonAlignBottomRight  8
  123.  
  124. #define kControlBevelButtonAlignTextSysDirection  0
  125. #define kControlBevelButtonAlignTextCenter  1
  126. #define kControlBevelButtonAlignTextFlushRight  (-1)
  127. #define kControlBevelButtonAlignTextFlushLeft  (-2)
  128.  
  129. #define kControlBevelButtonPlaceSysDirection  (-1)            /*  if graphic on right, then on left */
  130. #define kControlBevelButtonPlaceNormally  0
  131. #define kControlBevelButtonPlaceToRightOfGraphic  1
  132. #define kControlBevelButtonPlaceToLeftOfGraphic  2
  133. #define kControlBevelButtonPlaceBelowGraphic  3
  134. #define kControlBevelButtonPlaceAboveGraphic  4
  135.  
  136. #define kControlBevelButtonContentTag     'cont'                /*  ButtonContentInfo */
  137. #define kControlBevelButtonTransformTag  'tran'                /*  IconTransformType */
  138. #define kControlBevelButtonTextAlignTag  'tali'                /*  ButtonTextAlignment */
  139. #define kControlBevelButtonTextOffsetTag  'toff'            /*  SInt16 */
  140. #define kControlBevelButtonGraphicAlignTag  'gali'            /*  ButtonGraphicAlignment */
  141. #define kControlBevelButtonGraphicOffsetTag  'goff'            /*  Point */
  142. #define kControlBevelButtonTextPlaceTag  'tplc'                /*  ButtonTextPlacement */
  143. #define kControlBevelButtonMenuValueTag  'mval'                /*  SInt16 */
  144. #define kControlBevelButtonMenuHandleTag  'mhnd'            /*  MenuHandle */
  145. #define kControlBevelButtonCenterPopupGlyphTag  'pglc'        /*  Boolean: true = center, false = bottom right */
  146.  
  147. #define kControlBevelButtonLastMenuTag     'lmnu'                /*  SInt16: menuID of last menu item selected from */
  148. #define kControlBevelButtonMenuDelayTag  'mdly'                /*  SInt32: ticks to delay before menu appears */
  149.  
  150.                                                             /*  Boolean: True = if an icon of the ideal size for */
  151.                                                             /*  the button isn't available, scale a larger or */
  152.                                                             /*  smaller icon to the ideal size. False = don't */
  153.                                                             /*  scale; draw a smaller icon or clip a larger icon. */
  154.                                                             /*  Default is false. Only applies to IconSuites and */
  155. #define kControlBevelButtonScaleIconTag  'scal'                /*  IconRefs. */
  156. #define kControlSliderProc                 48
  157. #define kControlSliderLiveFeedback         0x01
  158. #define kControlSliderHasTickMarks         0x02
  159. #define kControlSliderReverseDirection     0x04
  160. #define kControlSliderNonDirectional     0x08
  161.  
  162. #define kControlTriangleProc             64
  163. #define kControlTriangleLeftFacingProc     65
  164. #define kControlTriangleAutoToggleProc     66
  165. #define kControlTriangleLeftFacingAutoToggleProc  67
  166.  
  167. #define kControlTriangleLastValueTag     'last'                /*  SInt16 */
  168. #define kControlProgressBarProc         80
  169. #define kControlProgressBarIndeterminateTag  'inde'            /*  Boolean */
  170. #define kControlLittleArrowsProc         96
  171. #define kControlChasingArrowsProc         112
  172. #define kControlTabLargeProc             128                    /*  Large tab size, north facing     */
  173. #define kControlTabSmallProc             129                    /*  Small tab size, north facing     */
  174. #define kControlTabLargeNorthProc         128                    /*  Large tab size, north facing     */
  175. #define kControlTabSmallNorthProc         129                    /*  Small tab size, north facing     */
  176. #define kControlTabLargeSouthProc         130                    /*  Large tab size, south facing     */
  177. #define kControlTabSmallSouthProc         131                    /*  Small tab size, south facing     */
  178. #define kControlTabLargeEastProc         132                    /*  Large tab size, east facing     */
  179. #define kControlTabSmallEastProc         133                    /*  Small tab size, east facing     */
  180. #define kControlTabLargeWestProc         134                    /*  Large tab size, west facing     */
  181. #define kControlTabSmallWestProc         135                    /*  Small tab size, west facing     */
  182.  
  183. #define kControlTabContentRectTag         'rect'                /*  Rect */
  184. #define kControlTabEnabledFlagTag         'enab'                /*  Boolean */
  185. #define kControlTabFontStyleTag         'font'                /*  ControlFontStyleRec */
  186.  
  187. #define kControlTabInfoTag                 'tabi'                /*  ControlTabInfoRec */
  188. #define kControlTabInfoVersionZero         0
  189. #define kControlSeparatorLineProc         144
  190. #define kControlGroupBoxTextTitleProc     160
  191. #define kControlGroupBoxCheckBoxProc     161
  192. #define kControlGroupBoxPopupButtonProc  162
  193. #define kControlGroupBoxSecondaryTextTitleProc  164
  194. #define kControlGroupBoxSecondaryCheckBoxProc  165
  195. #define kControlGroupBoxSecondaryPopupButtonProc  166
  196.  
  197. #define kControlGroupBoxMenuHandleTag     'mhan'                /*  MenuHandle (popup title only) */
  198. #define kControlGroupBoxFontStyleTag     'font'                /*  ControlFontStyleRec */
  199.  
  200. #define kControlGroupBoxTitleRectTag     'trec'                /*  Rect. Rectangle that the title text/control is drawn in. (get only) */
  201. #define kControlImageWellProc             176
  202. #define kControlImageWellContentTag     'cont'                /*  ButtonContentInfo */
  203. #define kControlImageWellTransformTag     'tran'                /*  IconTransformType */
  204.  
  205. #define kControlPopupArrowEastProc         192
  206. #define kControlPopupArrowWestProc         193
  207. #define kControlPopupArrowNorthProc     194
  208. #define kControlPopupArrowSouthProc     195
  209. #define kControlPopupArrowSmallEastProc  196
  210. #define kControlPopupArrowSmallWestProc  197
  211. #define kControlPopupArrowSmallNorthProc  198
  212. #define kControlPopupArrowSmallSouthProc  199
  213.  
  214. #define kControlPopupArrowOrientationEast  0
  215. #define kControlPopupArrowOrientationWest  1
  216. #define kControlPopupArrowOrientationNorth  2
  217. #define kControlPopupArrowOrientationSouth  3
  218.  
  219. #define kControlPlacardProc             224
  220. #define kControlClockTimeProc             240
  221. #define kControlClockTimeSecondsProc     241
  222. #define kControlClockDateProc             242
  223. #define kControlClockMonthYearProc         243
  224.  
  225. #define kControlClockTypeHourMinute     0
  226. #define kControlClockTypeHourMinuteSecond  1
  227. #define kControlClockTypeMonthDay         2
  228. #define kControlClockTypeMonthDayYear     3
  229.  
  230. #define kControlClockFlagStandard         0                    /*  editable, non-live */
  231. #define kControlClockNoFlags             0
  232. #define kControlClockFlagDisplayOnly     1                    /*  add this to become non-editable */
  233. #define kControlClockIsDisplayOnly         1
  234. #define kControlClockFlagLive             2                    /*  automatically shows current time on idle. only valid with display only. */
  235. #define kControlClockIsLive             2
  236.  
  237. #define kControlClockLongDateTag         'date'                /*  LongDateRec */
  238. #define kControlClockFontStyleTag         'font'                /*  ControlFontStyleRec */
  239.  
  240. #define kControlUserPaneProc             256
  241. #define kControlUserItemDrawProcTag     'uidp'                /*  UserItemUPP */
  242. #define kControlUserPaneDrawProcTag     'draw'                /*  ControlUserPaneDrawingUPP */
  243. #define kControlUserPaneHitTestProcTag     'hitt'                /*  ControlUserPaneHitTestUPP */
  244. #define kControlUserPaneTrackingProcTag  'trak'                /*  ControlUserPaneTrackingUPP */
  245. #define kControlUserPaneIdleProcTag     'idle'                /*  ControlUserPaneIdleUPP */
  246. #define kControlUserPaneKeyDownProcTag     'keyd'                /*  ControlUserPaneKeyDownUPP */
  247. #define kControlUserPaneActivateProcTag  'acti'                /*  ControlUserPaneActivateUPP */
  248. #define kControlUserPaneFocusProcTag     'foci'                /*  ControlUserPaneFocusUPP */
  249. #define kControlUserPaneBackgroundProcTag  'back'            /*  ControlUserPaneBackgroundUPP */
  250.  
  251. #define kControlEditTextProc             272
  252. #define kControlEditTextPasswordProc     274
  253.  
  254. #define kControlEditTextInlineInputProc  276                /*  Can't combine with the other variants */
  255. #define kControlEditTextStyleTag         'font'                /*  ControlFontStyleRec */
  256. #define kControlEditTextTextTag         'text'                /*  Buffer of chars - you supply the buffer */
  257. #define kControlEditTextTEHandleTag     'than'                /*  The TEHandle of the text edit record */
  258. #define kControlEditTextKeyFilterTag     'fltr'
  259. #define kControlEditTextSelectionTag     'sele'                /*  EditTextSelectionRec */
  260. #define kControlEditTextPasswordTag     'pass'                /*  The clear text password text */
  261.  
  262. #define kControlEditTextKeyScriptBehaviorTag  'kscr'        /*  ControlKeyScriptBehavior. Defaults to "PrefersRoman" for password fields, */
  263.                                                             /*         or "AllowAnyScript" for non-password fields. */
  264. #define kControlEditTextLockedTag         'lock'                /*  Boolean. Locking disables editability. */
  265. #define kControlEditTextFixedTextTag     'ftxt'                /*  Like the normal text tag, but fixes inline input first */
  266. #define kControlEditTextValidationProcTag  'vali'            /*  ControlEditTextValidationUPP. Called when a key filter can't be: after cut, paste, etc. */
  267. #define kControlEditTextInlinePreUpdateProcTag  'prup'        /*  TSMTEPreUpdateUPP and TSMTEPostUpdateUpp. For use with inline input variant... */
  268. #define kControlEditTextInlinePostUpdateProcTag  'poup'        /*  ...The refCon parameter will contain the ControlHandle. */
  269.  
  270. #define kControlStaticTextProc             288
  271. #define kControlStaticTextStyleTag         'font'                /*  ControlFontStyleRec */
  272. #define kControlStaticTextTextTag         'text'                /*  Copy of text */
  273. #define kControlStaticTextTextHeightTag  'thei'                /*  SInt16 */
  274.  
  275. #define kControlStaticTextTruncTag         'trun'                /*  TruncCode (-1 means no truncation) */
  276. #define kControlPictureProc             304
  277. #define kControlPictureNoTrackProc         305                    /*  immediately returns kControlPicturePart */
  278.  
  279. #define kControlIconProc                 320
  280. #define kControlIconNoTrackProc         321                    /*  immediately returns kControlIconPart */
  281. #define kControlIconSuiteProc             322
  282. #define kControlIconSuiteNoTrackProc     323                    /*  immediately returns kControlIconPart */
  283.  
  284.                                                             /*  icon ref controls may have either an icon, color icon, icon suite, or icon ref. */
  285.                                                             /*  for data other than icon, you must set the data by passing a */
  286.                                                             /*  ControlButtonContentInfo to SetControlData */
  287. #define kControlIconRefProc             324
  288. #define kControlIconRefNoTrackProc         325                    /*  immediately returns kControlIconPart */
  289.  
  290. #define kControlIconTransformTag         'trfm'                /*  IconTransformType */
  291. #define kControlIconAlignmentTag         'algn'                /*  IconAlignmentType */
  292.  
  293. #define kControlIconResourceIDTag         'ires'                /*  SInt16 resource ID of icon to use */
  294. #define kControlIconContentTag             'cont'                /*  accepts a ControlButtonContentInfo */
  295.  
  296. #define kControlWindowHeaderProc         336                    /*  normal header */
  297. #define kControlWindowListViewHeaderProc  337                /*  variant for list views - no bottom line */
  298.  
  299. #define kControlListBoxProc             352
  300. #define kControlListBoxAutoSizeProc     353
  301.  
  302. #define kControlListBoxListHandleTag     'lhan'                /*  ListHandle */
  303. #define kControlListBoxKeyFilterTag     'fltr'                /*  ControlKeyFilterUPP */
  304. #define kControlListBoxFontStyleTag     'font'                /*  ControlFontStyleRec */
  305.  
  306. #define kControlListBoxDoubleClickTag     'dblc'                /*  Boolean. Was last click a double-click? */
  307. #define kControlListBoxLDEFTag             'ldef'                /*  SInt16. ID of LDEF to use. */
  308.  
  309. #define kControlPushButtonProc             368
  310. #define kControlCheckBoxProc             369
  311. #define kControlRadioButtonProc         370
  312. #define kControlPushButLeftIconProc     374                    /*  Standard pushbutton with left-side icon */
  313. #define kControlPushButRightIconProc     375                    /*  Standard pushbutton with right-side icon */
  314.  
  315. #define kControlCheckBoxAutoToggleProc     371
  316. #define kControlRadioButtonAutoToggleProc  372
  317.  
  318. #define kControlPushButtonDefaultTag     'dflt'                /*  default ring flag */
  319. #define kControlPushButtonCancelTag     'cncl'                /*  cancel button flag (1.1 and later) */
  320.  
  321. #define kControlScrollBarProc             384                    /*  normal scroll bar */
  322. #define kControlScrollBarLiveProc         386                    /*  live scrolling variant */
  323.  
  324. #define kControlPopupButtonProc         400
  325. #define kControlPopupFixedWidthVariant     0x01
  326. #define kControlPopupVariableWidthVariant  0x02
  327. #define kControlPopupUseAddResMenuVariant  0x04
  328. #define kControlPopupUseWFontVariant     0x08
  329.  
  330. #define kControlPopupButtonMenuHandleTag  'mhan'            /*  MenuHandle */
  331. #define kControlPopupButtonMenuIDTag     'mnid'                /*  SInt16 */
  332.  
  333. #define kControlPopupButtonExtraHeightTag  'exht'            /*  SInt16 extra vertical whitespace within the button */
  334. #define kControlRadioGroupProc             416
  335. #define kControlScrollTextBoxProc         432
  336. #define kControlScrollTextBoxAutoScrollProc  433
  337.  
  338. #define kControlScrollTextBoxDelayBeforeAutoScrollTag  'stdl' /*  UInt32 (ticks until autoscrolling starts) */
  339. #define kControlScrollTextBoxDelayBetweenAutoScrollTag  'scdl' /*  UInt32 (ticks between scrolls) */
  340. #define kControlScrollTextBoxAutoScrollAmountTag  'samt'    /*  UInt16 (pixels per scroll) -- defaults to 1 */
  341. #define kControlScrollTextBoxContentsTag  'tres'            /*  SInt16 (resource ID of 'TEXT'/'styl') -- write only! */
  342.  
  343.  
  344. /*--------------------------ldes • List Box Description Template------------------------*/
  345. /*    Used in conjunction with the list box control.                                      */
  346.  
  347. type 'ldes'
  348. {
  349.     switch
  350.     {
  351.         case versionZero:
  352.             key integer = 0;    /* version */
  353.  
  354.             integer;                                                /* Rows                    */
  355.             integer;                                                /* Columns                */
  356.             integer;                                                 /* Cell Height            */
  357.             integer;                                                /* Cell Width            */
  358.             byte            noVertScroll, hasVertScroll;            /* Vert Scroll            */
  359.             fill byte;                                                /* Filler Byte            */
  360.             byte            noHorizScroll, hasHorizScroll;            /* Horiz Scroll            */
  361.             fill byte;                                                /* Filler Byte            */
  362.             integer;                                                /* LDEF Res ID            */
  363.             byte            noGrowSpace, hasGrowSpace;                /* HasGrow?                */
  364.             fill byte;
  365.     };
  366. };
  367.  
  368.  
  369. /*-------------------------------tab# • Tab Control Template-----------------------------*/
  370. type 'tab#'
  371. {
  372.     switch
  373.     {
  374.         case versionZero:
  375.             key integer = 0;    /* version */
  376.  
  377.             integer = $$Countof(TabInfo);
  378.             array TabInfo
  379.             {
  380.                 integer;                                            /* Icon Suite ID        */
  381.                 pstring;                                            /* Tab Name                */
  382.                 fill long;                                            /* Reserved                */
  383.                 fill word;                                            /* Reserved                */
  384.             };
  385.     };
  386. };
  387.  
  388.  
  389. #endif /* __CONTROLDEFINITIONS_R__ */
  390.  
  391.